package cc.zy.base.hr.service;

import cc.zy.base.common.entity.QueryRequest;
import cc.zy.base.hr.entity.Staff;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Date;
import java.util.List;

/**
 * @author ljy
 * @time 2022/03/09 10:27:08
 */
public interface IStaffService extends IService<Staff> {

    /**
     * 查询（分页）
     * @param request QueryRequest
     * @param staff staff
     * @return IPage<Staff>
     */
    IPage<Staff> getStaffs(QueryRequest request, Staff staff);

    /**
     * 通过详情
     * @param constant
     * @return
     */
    Integer getConstantId(String constant);

    /**
     * 判断员工是否已存在
     * @param staff
     * @return
     */
    boolean staffExist(Staff staff);

    /**
     * 通过员工id更新员工信息
     * @param staff
     */
    void updateStaffByUserId(Staff staff);

    /**
     * 获取最后更新时间
     * @return
     */
    Date getUpdateTime();

    /**
     * 获取当前所有用户名的id列表
     * @return
     */
    List<String> getAllStaffUserIdList();

    /**
     * 通过用户微信userid删除员工
     * @param userId
     */
    void deleteStaffByUserId(String userId);

    // 二组通用选择员工组件
    /**
     * 查询（分页）
     *
     * @param request QueryRequest
     * @param staff   staff
     * @return IPage<College>
     */
    IPage<Staff> findStaff(QueryRequest request, Staff staff);

    /**
     * 查询前台输入的全称或简称是否存在
     *
     * @param name
     *
     * @return
     */
    Boolean isRepetitive(String name,String alias);

    /**
     * @Author: WBR
     * @Description: 根据标签查询员工
     * @DateTime: 2022/3/11 17:02
     * @Params: [request, staff]
     * @Return com.baomidou.mybatisplus.core.metadata.IPage<cc.zy.base.hr.entity.Staff>
     */
    IPage<Staff> findStaffByLabel(QueryRequest request, Staff staff);

    /**
     * @Author: WBR
     * @Description: 查询标签id
     * @DateTime: 2022/3/11 17:02
     * @Params: []
     * @Return java.util.List<cc.zy.base.hr.entity.Staff>
     */
    List<Staff> findStaffForSelect();

}
